package swimv2.ejb.control;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import swimv2.ejb.entity.Notifica;
import swimv2.ejb.entity.Notifica.TipoDiNotifica;
import swimv2.ejb.entity.Utente;
import swimv2.ejb.remote.GestioneNotificheRemote;
import swimv2.ejb.util.GestioneUtenti;


@Stateless(name="GestioneNotifiche")
public class GestioneNotifiche implements GestioneNotificheRemote {
	@PersistenceContext(unitName="SWIMV2")
	private EntityManager entityManager;
	/**
     * Default constructor. 
     */
    public GestioneNotifiche() {
    }
    

	@Override
	public void inviaMessaggio(String mittente,String destinatario,String testo)
	{
		Utente mittenteU = GestioneUtenti.cercaUtente(entityManager, mittente);
		Utente destinatarioU = GestioneUtenti.cercaUtente(entityManager, destinatario);
		
		Notifica notifica = new Notifica(TipoDiNotifica.MESSAGGIODITESTO,testo,mittenteU);
		entityManager.persist(notifica);
		destinatarioU.getNotifiche().add(notifica);
		
	}
	
	@Override
	public int numNotifichePendenti(String utente)
	{
		Utente utenteU = GestioneUtenti.cercaUtente(entityManager, utente);
		return utenteU.getNotifiche().size();
		
		
	}
	
	@Override
	public List<Notifica> getNotifiche(String utente)
	{
		Utente utenteU = GestioneUtenti.cercaUtente(entityManager, utente);
		return utenteU.getNotifiche();
		
		
	}
	
}
